home *** CD-ROM | disk | FTP | other *** search
- ╓─────┐ ╓─┐ ╓─┐ ╥──┐ ╓─╥─┐ ╥─┐ ╥ ╥──┐ ╥──┐
- ║ │ ╙─┐ ╙─┐ ╟─ ║ ║ │ ╟─┴┐ ║ ╟─ ╟─┬┘
- ╟─────┤ ╙──┘ ╙──┘ ╨──┘ ╨ ╨ ┴ ╨──┘ ╨──┘ ╨──┘ ╨ ┴
- ║ │ ╥ ╓──┐ ╥─┐ ╓──┐ ╥──┐ ╓──┐ ╓─╥─┐ ╓──┐ ╥──┐ ╥ ┬
- ╨ ┴ ║ ╟──┤ ╟─┴┐ ║ │ ╟─┬┘ ╟──┤ ║ ║ │ ╟─┬┘ ╙──┤
- ║ ╨ ┴ ╨──┘ ╙──┘ ╨ ┴ ╨ ┴ ╨ ╙──┘ ╨ ┴ ╙──┘
- ║ (c) 1994,1995 Kurt Inge Groenbech
- ╨─────┘
- ───────────────────────────────┤ Version 1.0 ├─────────────────────────────────
- R E F E R E N C E M A N U A L
- ───────────────────────────────────────────────────────────────────────────────
-
- Table of contents:
-
- 0 - Legal
- 0.1 - Disclaimer
- 0.2 - Registration (and what you get)
- 0.3 - Distribution
- 0.4 - Acknowledgements
- 1 - Introduction
- 1.1 - About this reference manual
- 1.2 - Why starting this project
- 1.3 - Release notes!!
- 2 - Installation
- 3 - Command line switches
- 4 - Features
- 4.1 - Procedure/macro Worksheet
- 4.2 - Heuristic Scan
- 4.3 - Block comment/uncomment
- 4.4 - Label Jumps
- 4.5 - Opcode help
- 4.6 - Tab characters
- 4.7 - Redefining shortcut keys in menus
- 5 - Project Manager
- 5.1 - What is it?
- 5.2 - Creating a project file
- 5.3 - Making a project
- 6 - Known bugs
- 6.1 Alab hangs when I open a window!
- 7 - People involved
- 7.1 - Public domain software
- 7.2 - Betatesters
- 8 - The author/contacting
-
- ───────────────────────────────────────────────────────────────────────────────
- [ 0 - Legal ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- 0.1 - Disclaimer
- ----------------
-
- Assembler Laboratory is provided "as is" and without any warranty.
- To the extent premitted under applicable law, I disclaim all warranties,
- express or implied, including but not limited to, any implied warranty
- of merchantability or fitness for a particular purpose. Specifically, I
- make no representation or warranty that the software is fit for any
- particular purpose.
-
- I shall not be liable for any damages resulting from the use of this
- software, including but not limited to, loss of profit, data or use of
- the software, or indirect, special, incidental or consequential damages
- or other similar claims, even if I has been specifically advised of the
- possibility of such damages.
-
- What it means:
- The only thing I guarantee Alab will do, is to take up space on your
- harddisk. If it doesn't do that, well... then I think you have some
- serious problems with your harddisk ;)
-
- 0.2 - Registration
- ------------------
-
- Assembler Laboratory is provided as SHAREWARE (read SHAREWRE.TXT for
- information about shareware). If you continue using Alab after a 30 day
- trial period, you MUST PURCHASE a license for it. This is the advantage
- about shareware. You can use the program for a specified number of
- days/months to see if you like it, and then pay for it if you do and
- would like to use it further.
-
- The non-commercial registration fee for Alab is set to just $15 (USD).
- This includes shipping costs, disk, envelope, stamp etc.
-
- To register Alab, do the following:
-
- - Print out the order form (ORDER.FRM) and fill it out.
- - Print out license.txt (read it ofcoz) and sign it
- - Mail them both to HAAVARD ENGUM (the address is at the end of this
- document, and in order.frm).
- - The registration fee can be paid in cash, cheque or money-transfer
- to "giro" bank or postgiro accounts:
-
- Bank account ("giro" bank) : 82306010944
- Post account (postgiro) : 08250698330
-
- Make it payable to :
-
- Groenbech
- Sigrid Johansens v.23
- 7025 Trondheim
- NORWAY
-
- When Haavard then recieves order.frm and a signed license.txt (and you
- have paid the fee), he will send a registered version to you by snailmail.
-
- The shareware version of Alab comes with lack of 2 features.
- I have not put any shitty delays or big screens wich says 'EVALUATION COPY'
- in there, because that SUCKS! I *hate* such delays. I do not want to push
- you too much to register Alab. Those who find it useful, I hope you will
- appreciate my many hours of work on this project and register.
-
- What you get by registering:
- - A personalised disk with a registered version of Alab.
- - Max 15 windows open (4 in the shareware version)
- - Possibility to Save/Restore desktop when not using Project.
-
- I couldn't figure out something else ;)
-
- 0.3 - Distribution
- ------------------
-
- Distribution of Alab must happen under these conditions:
-
- - Alab should be distributed in its original archive, but if not
- possible, all these files must be in the archive:
- ALAB.EXE
- ALAB.OVR
- ALAB.DOC
- ALAB.CFG
- ALAB.HLP
- ALAB.REV
- ALAB.MAC
- KEYS.MAC
- FILE_ID.DIZ
- ORDER.FRM
- LICENSE.TXT
- [UNHANG.COM] not a must, but do include it if you have it
- [SHAREWRE.TXT] not a must, but do include it if you have it
- [DESCRIPT.ION] not a must, but do include it if you have it
-
- - No money can be charged for it, EXCEPT a little payment for the
- disk or similar.
-
- 0.4 - Acknowledgements
- ----------------------
-
- Many hours have gone into the development of this product, and I have
- got many a useful idéa from various betatesters. Especially I would like
- to thank the following people for extensive betatesting:
-
- - Tor-Helge Skei (Axon/ Xenon), Main betatester
- - Helge Helgesen
- - Espen Grimsgaard (Twinny/ Gollum)
- - Thomas Loevlie
-
- A complete list of betatesters comes at the end of this document.
-
- Also, I acknowledge these packages in the development of Alab:
-
- Turbo Vision for Turbo Pascal 6.0 (yes 6.0!), by Borland International
- Turbo Vision for Borland Pascal 7.0 by Borland International
- Turbo Assembler by Borland International
- Turbo Link by Borland International
- Turbo Debugger by Borland International
- Turbo Profiler by Borland International
- Microsoft Macro Assembler by Microsoft Corp
- Microsoft Overlay Linker by Microsoft Corp
- Microsoft Codeview by Microsoft Corp
-
- [ 1 - Introduction ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- 1.1 - About this reference manual
- ---------------------------------
-
- This documentation is inteded as a short overview of Alab and I will
- therefore not go too much into details, thus I recon most of you out
- there know how to handle an IDE (I believe most of you have already
- tried different IDE's).
-
- 2 statements before I continue...
-
- - Please bear with my english (I'm from Norway!:)
- - I will cut the crap about Turbo Vision, how an Assembler IDE editor
- should be compared to a Pascal IDE editor, and so forth. I will
- instead consentrate on talking about all the special features, and
- other things I believe can be useful to know when starting using
- Alab.
- - This program is called Assembler Laboratory, but in this document it
- will be called Alab for ease. (AsmLab in the startup ansi ...)
-
- 1.2 - Why starting this project
- -------------------------------
-
- For some years of assembly programming, I (as most of us) had this
- cyclus during development:
- ┌┌─> - Edit the source code in a regular editor
- ││ - Save the source code (an extra keypress)
- ││ - Exit the editor
- ││ - Assemble the source code from the command line
- │└─ - Go back to the editor if reported errors
- │ (you'd have to search for the error(s))
- │ - Link the .obj-file (possibly run an .bat-file or MAKE instead of
- │ assemble/link)
- │ - Run the executable program
- │ - Boot machine if the program hangs
- └── - Go back to the editor to make further modifications
-
- This is an extremely unneccesery time consuming process, and the idéa
- popped into my mind: 'Why not make an Asm IDE (I hadn't seen anyone at
- that time) where you can do all of this things without exiting the
- IDE!' I had also seen the editors for Pascal/C which had syntax
- highlighting, and I thought that that would be a great idéa to have in
- the Asm IDE. C also had a great error highlighting and why not also
- include that in my Asm IDE? Ok, so the idéa was born, and now I needed a
- name for it. I for a long time had 'AsmIDE' as the name, but then
- suddenly I saw that there already was an Asm IDE out there called AsmIDE
- (hi Toby!). Ok, I had already come so far on the project so I didn't
- want to cancel it. All I had to do was to make an IDE much better than
- what is already out there. I ofcourse had to change the name. At first I
- couldn't think of anything good, but I guess suddenly 'Assembler
- Laboratory' must have just popped in (can't remember exactly). Since it
- is called 'Laboratory' I also thought I had to make a bunch of extra
- features (laboratory is a place where you have many different things at
- your disposal), and so it was!
-
- Here is a brief list of Assembler Laboratory features:
- - [Save/]Assemble as standalone choice (one keypress)
- - [Save/]Assemble[/Link] as standalone choice (one keypress)
- - [Save/]Assemble/Link/Run as standalone choice (one keypress)
- - Syntax highlighting
- - Error hightlighting
- - Procedure worksheet (useful popup overview of procedures)
- - Macro/data Worksheet (same as proc worksheet, but for macros/data)
- - Heuristic scan (scans through source code for coding bugs)
- - Project Manager
- - Label jumps
- - Keyboard macros
- - Menu functions shortcut key reassignment
- - Online opcode help. Also context sensitive. (Topic Search)
- - Block comment/uncomment
- - Ascii/scancodes table
- - Dec/Hex/Bin calculator (inspired by Toby's AsmIDE, as many other
- things :)
-
- ... and I have also included an 'unhang' utility ('Unhang.com') which
- can prevent your machine from hanging in many cases (that is, you can
- press the stated keycombination when your machine hangs, and Unhang will
- try to quit back to DOS.) Beware that this program can be very unstable
- I think. It will not work if you either hook int 09 or disables keyboard
- interrupt. It will probably not work if you run some module player in
- the background... What it does is to hook int 9 and saves an
- exit-command at the address found on the stack (the point where the
- interrupt was called). Just 'mov ax, 4c00h - int 21h', but it works on
- most smaller programmes ! :) It is actually _very_ useful when coding
- demos under dos for example (without sound in the background).
-
- 1.3 - Release notes!!
- ---------------------
-
- I have been assigned to the military service this year starting
- 19. Juli 1995. Due to this I have decided to release Alab much sooner
- than I had expected, or else I probably must have waited one year.
- Because of this, Alab will be much more unfinished than I had expected
- and has a lack of features I wanted to put in there. I will also not be
- available to fix bugs most of the time, which garanteed will occur during
- this year, but there will be ways to pass your messages/idéas/suggestions to
- Xenon members or Espen Grimsgaard (twinny / gollum) who is the coordinator
- of the WWW page (is at the end of this doc). Another thing about this
- release version is that it contains a lot of uneccessary code (the .exe-file
- is over 230k!). I have not had any time to code it better before I leave...
-
- If there is overwhelming response, I will code as _hell_ when I have
- absens of leave (I don't know what the hell it's called, what I mean is:
- free from military service). I will put in features you have requested,
- fix bugs, change things etc., and try to release a new version now and
- then, in between military service.
-
- [ 2 - Installation ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- - Copy all the files to the directory where you wish to have Alab
- - Include the directory in your path if you want (also easiest to do
- in your autoexec.bat)
-
- Now Alab is ready to go. The first thing you should do when you start
- Alab, is to go to the Options|Directories and set the path to where your
- Tasm/Masm executables are.
-
- [ 4 - Features ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- 4.1 - Procedure/macro Worksheet
- -------------------------------
-
- Procedure/macro Worksheet is a completely new feature in low level
- programming IDE's. It is a popup menu with complete procedure overview.
- Here you have a nice list of all the procedures in the current
- source code, and by pressing [Space], you jump directly to the item the
- bar is on! Well, you maybe are familar with something like this.
- Borland Pascal have a browser which is quite similar to this.
-
- 4.2 - Heuristic Scan
- --------------------
-
- I actually got this idéa from the famous virus-scanner F-PROT. What
- Heuristic Scan does, is to scan through the sourcecode and look for
- bugs which wasn't reported by the compiler, and is likely to cause some
- problems. F.ex. it scans for missing 'ret's in procedures (which is
- likely to hang your program). This is the only thing in Heuristic Scan
- so far, but I have some more idéas to it, and I will most probably get
- many idéas from you betatesters. (F.ex. I have planned to make Heuristic
- Scan scan for places where it is possible that DS doesn't point to the
- data-segment (or the segment where the variable is) when accessing
- variables (this is also in many cases a hang-cause).
-
- 4.3 - Block comment/uncomment
- -----------------------------
-
- This feature is pretty much self-explanatory. You mark a block, and
- choose Block comment from the menu or shortcut-keys, and ....! The block
- is commented. I guess uncomment is obvious at this time :)
-
- 4.4 - Label Jumps
- -----------------
-
- This is a nice one! You just position the cursor on a line that holds
- a CALL or Jxx (all jump opcodes), and press Ctrl+J. The cursor then
- jumps to the procedure or label succeding the opcode.
-
- 4.5 - Online Opcode Help
- ------------------------
-
- Also a nice one! On the Help|Opcodes you have a very extensive online
- help on the instruction set. Just choose one and there you have it all,
- just as detailed as any TSR. There also is context sensitive help on
- this. Position the cursor on a line which hold an opcode as the first
- thing (or after a label), and press the command for Topic Search
- (Shift+F1 as default). Help for that specific opcode is automatically
- brought up.
-
- 4.6 - Tab characters
- --------------------
-
- I do not use true tab characters in my source codes, and therefore I
- have not bothered to put in support for smart tabs when the 'Use tab
- characters' checkbox is checked in Options|Editor (i'm too lazy, and
- besides I have very little time to finish Alab now).
- That is; smart tabs is only available when using spaces instead of
- true tab characters.
-
- Also; the tab step when using true tab characters is always 8, no
- matter what you type in the 'Tab size' box in Options|Editor.
-
- 4.7 - Redefining shortcut keys in menus
- ---------------------------------------
-
- Actually very easy. Just follow the instructions in KEYS.MAC. The
- reason why I mention it here, is because people seem to not notice
- that it says you have to start Alab with the '/K' switch in order to
- make the changes take effect! Remember that... Also, you must not
- reorder the function names in any way! Alab does not recognais (I
- know it isn't written like that!) the function names.
-
- [ 5 - Project Manager ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- 5.1 - What is it?
- -----------------
-
- Project Manager lets you create and maintain a project file (extension
- .APF for Alab Project File) where you specify all the .asm, .obj and
- .lib files which are to be included in your program. If you specify an
- .asm file in your project YOU DO NOT HAVE TO specify the .obj file
- created from that .asm file! With Project Manager it gets easy to
- maintain your program, and easy to link/run it.
-
- 5.2 - Creating a project file
- -----------------------------
-
- Lets say you are starting on a program with 3-4 source files, 2
- additional object files you have got from a friend with video routines
- etc., and 1 of your own library files. You then first choose Open on the
- Project menu and type in the name for the project file (the name of the
- project file will be used to create an .exe/.com file). You then get an
- open Project Manager window with no files in it. Press Insert or choose
- Add Item from the menu to insert new items. Insert the 3-4 source files,
- the 2 object files and the library file. Then you can go to one of the
- source file and press ENTER to open it (or choose Open from the File
- menu). You then write your source code in it and assembles it the usual
- way. You do this with the other .asm files also.
-
- 5.3 - Making a project
- ----------------------
-
- When you choose Make and you have an open project, the Project Manager
- goes through the files specified in the project file (project window),
- top to bottom, and do this: If the file is a source file (.asm) the
- Project Manager checks wether the source file is modified. If it is, the
- file is assembled and the .obj file created is added to the parameters
- which will be passed to the linker later. If the file is a .obj or a
- .lib file, the file is added to the parameters to pass to the linker.
- Then when the Project Manger has gone through all the files, the linker
- is invoked and an executable is created. The name of the executable will
- be the same as the name of the project file.
-
- [ 6 - Known bugs ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
- - Not actually a bug, but lots of useless code in there!
- (and code which is never used too..)
- - Syntax highlighting really is way to slow...!
- - Not fully support for Masm. Not support for Microsoft Link yet.
- - Also not support for Masm in project.
- - Calculator don't handle negativ decimal->hex+some more bugs (don't
- use too big numbers...)
- - Project Manager:
- You have to specify full path to include files in the source files
- in most cases.
- - The line is deleted if you press 'Shift+End,Right' (use Undo)
- - Some bugs with highlight extensions
- - Dos screen doesn't work on a monochrom screen (who has that anyway?)
-
- - Some other small bugs which I cannot remember right now.
-
- 6.1 - Alab hangs when I open a window!
- --------------------------------------
-
- The cause for this is most probably that you don't have a 386+, and that
- the syntax highlighting checkbox is checked in Options|Editor. What
- happens is that syntax highlighting uses 386 code, and this will hang
- your machine. You will have to turn off syntax highlighting and clear
- the 'Highlight extensions' field in Options|Editor before you open any
- windows.
-
- [ 7 - People Involved ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- 7.1 - Public domain software
- ----------------------------
-
- - Exec procedure with EMS swap by Thomas Wagner
-
- 7.2 - Betatesters
- -----------------
-
- Here is a complete list of betatesters:
-
- - Tor-Helge Skei (Axon/ Xenon), Main betatester
- - Helge Helgesen
- - Espen Grimsgaard (Twinny/ Gollum)
- - Haavard Engum (Hobbes/ Xenon)
- - Knut Petter Svendsen (Mephisto/ Xenon)
- - Staale Singstad (Cyberman/ Xenon)
- - Michal Karpinski (Mike X/ Xenon)
- - Kurt-Inge Johansen
- - Thomas Loevlie
- - Kristian Loeseth (Opossum/ )
-
- [ 8 - The author/contacting ]
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- I'm 19 years old and live in Trondheim, Norway.
- Student at Trondheim School of Engineering.
- A.k.a. Ghoul / Xenon Development
-
- If you have suggestions/questions/problems about Alab I cannot be
- reached due to military service, as stated above :(
-
- What you should do, is send your requests to one of the addresses below:
- (Most preferred method is to send it to Haavard in one way or the other,
- most preferably email, and the WWW page)
-
- Email : hobbes@infolink.no
- This is the email address to Haavard Engum, a.k.a.
- Hobbes/Xenon Development. He will make sure I get all the
- requests in time.
-
- WWW : http://www.nano.no/~espeng/alab/
- The coordinator of this page is Espen Grimsgaard, a.k.a.
- twinny/gollum, and there you can find info about Alab and
- you can send your suggestions/questions/problems there, and
- he'll save them for me.
-
- BBS : Bogus Boutique #1 +47-73964483 (Xenon Development WHQ) [BBBS]
- Bogus Boutique #2 +47-73965209
- Eldritch BBS +47-72582079 (23:00-07:00)
- InfoLink BBS +47-22571600/22571604 (10 nodes) [MBBS]
-
- NB! Bogus Boutique is likely to go down soon...
-
- Norwegians:
- Det er en konferanse på nettet NDC (Norwegian Demo Connection) som
- heter NDC.Alab. Dere kan poste alt om alab der til Haavard Engum. Han
- kan også svare på en del sp¢rsmål dere måtte ha. (dere kan poste
- meldingene public også, så kan f.eks. forslagene til nye ting
- diskuteres e.l.)
-
- You can always mail me at my home address, but it's nok likely I'll get
- your letter until 1-2 months.
-
- Snailmail:
-
- Author: 'Registration coordinator'
- Kurt Inge Groenbech Haavard Engum
- Sigrid Johansens veg 23 Stokkanhaugen 164
- 7025 Trondheim 7048 Trondheim
- NORWAY NORWAY
-
- NB! Please (again) register if you like it! I have been kind not to put
- some shitty delays, shareware reminders or whatever in there (but some
- restrictions like the 4 window limit), and I would very much appreciate
- if you show your interest, so I can continue developing this program.
- (hrmpf... god, what a sentence ;)
-
- Last minute notes:
- I know there's a lot of bad programming in there now. Ofcourse I would
- have rewritten big parts of it, but I have no time because of reasons
- in section 1.3.
- Well, hope you like it (sorry for the 64Kb limit;) !
-
- Yrs,
- φ Kurt Inge Groenbech φ
-
-